package com.bmob.lover.ui.fragment.lol

import android.content.Context
import android.os.Bundle
import com.qmuiteam.qmui.arch.QMUIFragment
import com.theone.common.constant.BundleConstant
import com.theone.common.ext.getValueNonNull
import com.bmob.lover.R
import com.bmob.lover.data.constant.LOLConstant
import com.theone.mvvm.base.viewmodel.BaseViewModel
import com.theone.mvvm.core.base.fragment.BaseTabInTitleFragment
import com.theone.mvvm.core.app.ext.init
import com.theone.mvvm.core.data.entity.QMUIItemBean
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.WrapPagerIndicator

//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 * @author The one
 * @date 2021-04-26 16:50
 * @describe TODO
 * @email 625805189@qq.com
 * @remark
 */
class LOLTypeFragment private constructor(): BaseTabInTitleFragment<BaseViewModel>() {

    companion object {
        fun newInstance(type: Int): LOLTypeFragment {
            return LOLTypeFragment().apply {
                arguments = Bundle().apply {
                    putInt(BundleConstant.TYPE, type)
                }
            }
        }
    }

    private val mType:Int by getValueNonNull(BundleConstant.TYPE)

    override fun initTabAndFragments(
        tabs: MutableList<QMUIItemBean>,
        fragments: MutableList<QMUIFragment>
    ) {
        val beans = LOLConstant.getLOLBeans(mType)
        beans.forEach {
            tabs.add(QMUIItemBean(it.title))
            fragments.add(LOLItemFragment.newInstance(it))
        }
    }

    override fun getNavIndicator(context: Context): IPagerIndicator {
        return WrapPagerIndicator(context).init(R.color.qmui_config_color_background)
    }

}